// 数据库操作工具类（本地存储版本）
class DB {
  constructor() {
    // 初始化本地存储
    this.initLocalDB();
  }

  // 初始化本地数据库
  initLocalDB() {
    console.log('使用本地存储作为数据存储方案');
  }

  // 获取表白列表
  async getConfessionList(page = 1, size = 10) {
    try {
      // 使用本地存储
      const data = wx.getStorageSync('confessions') || [];
      return data.slice((page - 1) * size, page * size);
    } catch (error) {
      console.error('获取表白列表失败:', error);
      return [];
    }
  }

  // 发布表白
  async publishConfession(data) {
    try {
      const confession = {
        ...data,
        id: Date.now().toString(), // 生成唯一ID
        createTime: new Date(),
        likes: 0,
        comments: 0
      };

      // 使用本地存储
      const confessions = wx.getStorageSync('confessions') || [];
      confessions.unshift(confession);
      wx.setStorageSync('confessions', confessions);
      return confession.id;
    } catch (error) {
      console.error('发布表白失败:', error);
      return null;
    }
  }

  // 获取表白详情
  async getConfessionDetail(id) {
    try {
      // 使用本地存储
      const confessions = wx.getStorageSync('confessions') || [];
      return confessions.find(item => item.id === id);
    } catch (error) {
      console.error('获取表白详情失败:', error);
      return null;
    }
  }

  // 点赞表白
  async likeConfession(id, isLiked) {
    try {
      // 使用本地存储
      const confessions = wx.getStorageSync('confessions') || [];
      const index = confessions.findIndex(item => item.id === id);
      if (index !== -1) {
        confessions[index].likes += isLiked ? 1 : -1;
        wx.setStorageSync('confessions', confessions);
        return true;
      }
      return false;
    } catch (error) {
      console.error('点赞操作失败:', error);
      return false;
    }
  }

  // 添加评论
  async addComment(confessionId, comment) {
    try {
      const commentData = {
        ...comment,
        id: Date.now().toString(), // 生成唯一ID
        confessionId: confessionId,
        createTime: new Date()
      };

      // 使用本地存储
      const comments = wx.getStorageSync('comments') || [];
      comments.unshift(commentData);
      wx.setStorageSync('comments', comments);
      
      // 更新表白的评论数
      const confessions = wx.getStorageSync('confessions') || [];
      const index = confessions.findIndex(item => item.id === confessionId);
      if (index !== -1) {
        confessions[index].comments += 1;
        wx.setStorageSync('confessions', confessions);
      }
      
      return true;
    } catch (error) {
      console.error('添加评论失败:', error);
      return false;
    }
  }

  // 获取评论列表
  async getComments(confessionId) {
    try {
      // 使用本地存储
      const comments = wx.getStorageSync('comments') || [];
      return comments.filter(item => item.confessionId === confessionId);
    } catch (error) {
      console.error('获取评论列表失败:', error);
      return [];
    }
  }
}

// 导出单例实例
module.exports = new DB();